package deep8jvmdvm;

/*
synchronized

synchronized 可以用来修饰以下 3 个层面：

修饰实例方法；
锁对象是当前实例对象，因此只有同一个实例对象调用此方法才会产生互斥效果，不同实例对象之间不会有互斥效果

修饰静态类方法；

修饰代码块。
 */

public class TestSynchronized1 {
    private int snum = 0;


    /*
        这种情况下的锁对象是当前实例对象，因此只有同一个实例对象调用此方法才会产生互斥效果，不同实例对象之间不会有互斥效果。比如如下代码：
     */
    public synchronized void calculate() {
        snum = snum + 1;
    }

}
